NOTE: All text, even in the English version, is encoded in SHIFT-JIS and is written in full-length characters (0x82XX set in SHIFT-JIS).
	The protagonist's name is represented with the code 0x8197.

The effective address of each core file in RAM is placed in parentheses next to their headers. Add this value when calculating pointers or addresses. Pointers within the files typically point to the effective address.

There are no arm7 overlays for this game.

********************************************
GENERAL NOTES
********************************************
Elemental properties are consistently encoded as the following:
	00 = Phys
	01 = Fire
	02 = Ice
	03 = Elec
	04 = Force
	05 = Mystic
	06 = Almighty
	07 = Devil's Fuge

Status ailments are encoded as bit flags within 2 bytes:
	0000 = None
	0001 = Death
	0004 = Paralyze
	0008 = Stone
	0010 = Poison
	0020 = Mute
	0040 = Egg
	0080 = Freeze
	0100 = Shock
	0200 = Heal Block
	0400 = Seal

********************************************
CORE FILES
********************************************
Some data is stored in the ARM9 and overlay files. These can be extracted via any DS extractor software.
============================================
arm9.bin (0x2000000)
============================================
Source:	0x0004000
Entry:	0x2000800
Size:	0x0175697 (but only goes up to 0x017505F in the debugger)

--------------------------------------------
Overview
--------------------------------------------
List of known/notable addresses.

Note that text pointers are extremely scattered and fragmentary. If you want to edit text I recommend referencing the Cartographer text dump files, which should be hosted on the same website as this file.

000BA0: PTR table
	000BA0: PTR to data block? @ 175680
	000BA4: PTR to end of arm9
	000BA8: PTR to SRT @175060
	000BAC: PTR to SRT @175060
	000BB0: PTR to RAM
000E08: Looks like a pointer but points outside the file
000E0C: Looks like a pointer but points outside the file
00DFEC: Metapointer to system text pointer table
00E7A8: PTR to data block @ 11BCC8?
010278: PTR to ...something @ 11FA28 (empty space?)
01027C: PTR to data block @ 11FA2C?
010280: SRT
012B58: PTR to data block @ 11F7CC?
01D948: PTR to data block @ 11FB88?
01DD7E: PTR to data block @ 16E350?
01DE08: PTR to data block @ 16E350?
01E7A8: Possible pointer to... something, maybe related to "Licensed by Nintendo" message
023A3C-023A4C: PTR to data block @ 11C18C
	Looks like affinity data
0250C8: SRT
025178: Possible PTR table
	025178: PTR to... something @ 16D75C
	02517C: PTR to RAM
	025180: PTR to RAM
	025184: PTR to SRT@0250C8
025188: SRT
025DB4-025DC4: PTR to data block @ 11C1B0
	Looks like affinity data
02CC7E: PTR to... something @ 16D75C
0545E4: PTR table (includes TEXT 1)
	0545E4: PTR to RAM
	0545EC: PTR to RAM
	0545F4: PTR to RAM
	0545F8: PTR to RAM
	0545FC: Metapointer to pointer table 7
	054604: Data?
	054608: PTR to RAM
	05460C: Metapointer to SRT@054BB4
054BB4: Subroutine
054E0C: Subroutine
054F40: PTR table (includes TEXT 2)
	054F44: PTR to SRT@054E0C
	054F50: Metapointer to pointer table 6
	054F54: PTR to RAM
054F58: Subroutine
059790: PTR to RAM
059794: Metapointer to sound filename pointer
059798: Matapointer to sound filename pointer table
	05978C: PTR to metadata for this table
05979C: Metapointer to sound filename pointer
059FD4-059FD8: PTRs to error messages
059FDC: PTR to RAM
059FE0: Probable subroutine
05A124: PTR to error message
05A128: Probable subroutine
05A1AC: Probable subroutine
05A1C0: Probable subroutine
05A1DC: Probable subroutine
05A1F0: Probable subroutine
05A23C: Probable subroutine
05A254: Unconditional branch instruction
05A258: Probable subroutine
05A2D0: PTR to error message
05A2D4: PTR to RAM
05A2D8: Probable subroutine
05BC24: PTR to error message
05BC28: PTR to RAM
05BC30: Probable subroutine
05BC9C: PTR to error message
05BCA0: PTR to RAM
05BCA8: Probable subroutine
05BDBC: PTR to error message
05BDC0: Probable subroutine
05C00C: PTRs to error messages insterspersed with subroutines
05C6F0: PTRs to error messages
05C700: Probable subroutine
05CBC8: PTRs to error messages
05CBD0: Probable subroutine
05D554: PTR to error message
05E51C: PTRs to error messages
05E748: PTR to error message
0629B4: PTRs to error messages
0639CC: Probable subroutine
066964: PTR to error message
066968: Probable subroutine
067158: PTR to data block @ 15B994
06715C: PTR to data block @ 15B80C
067A2C: PTR to empty space?
067A60: Metapointer to PTR to data block @ 15B9F0
067A64: Probable subroutine
067B48: PTRs to error messages
067B54: SRT PTR table
	067BA4: Subroutine
	067C00: Subroutine
	067C0C: Subroutine
	067C18: Subroutine
	069874: Subroutine
	069C18: Subroutine
067B84: Subroutine
067BFC: PTR to error message
069478: Metapointer to SRT PTR table @ 15CADC
06947C: Probable subroutine
069C60: Metapointer to PTR to data block? @ 15CB54
069C64: Probable subroutine
06A4C0: Possible PTR to... something @ 15CF94
06A4C4: Probable subroutine
06AA88: PTRs to error messages interspersed with subroutines
06D680: Metapointer to PTR table for debug messages
06D684: PTR to debug message
06D994: More debug PTRs
06E9A8: Probable subroutine
06EDF8: Filename PTR
06EDFC: Probable subroutine
06FB08: PTR -> 15FB14 (spacer?)
06FB0C: Probable subroutine
06FD90: PTR table?
	06FD90: PTR to RAM
	06FD94: PTR to... something @ 15FB14
	06FD98: PTR to RAM
	06FD9C: PTR to data block @ 168D04 (immediately follows PTR table)
	06FDA0: PTR to data block @ 168D08
06FDA4: SRT
07086C: PTR table (includes TEXT)
	07086C: PTR -> 15FB14 (dword of FF shortly before menu alert text)
	070878: PTR to data block @ 168D04
	07087C: PTR to RAM
	070880: PTR to data block @ 168D08
	070884: Unknown
	070898: PTR to RAM
0708A0: Probable subroutine
071288: PTR table (includes TEXT 4)
	071290: PTR to data block? @ 116F38
	0712A0: PTR to data block? @ 168D04
	0712A4: PTR to data block? @ 168D08
	0712AC: PTR to RAM
0712B4: Probable subroutine
072128: SRT PTR table?
	072128: PTR to data block? @ 11F080
	07212C: PTR to data block? @ 168D04
	072130: PTR to SRT@071098
	072134: Metapointer to PTR table @ 15FB1C
	072138: PTR to RAM
	07213C: PTR to SRT@072038
	072140: Metapointer to SRT PTR table @ 11F1A8?
0721A0: Probable subroutine
07267C: Metapointer table?
	07267C: PTR -> 11F044
	072680: PTR to RAM
	072684: PTR to data block @ 11F0BC
	072688: Metapointer to PTR table @ 168CAC (location text)
	07268C: Metapointer to PTR table @ 15FB24
072690: Probable subroutine
072DBC: PTR to data block? @ 168D04
072DC0: PTR to data block? @ 168D08
072DC4: SRT
0731C0: PTR table (includes TEXT)
	0731C0: PTR to RAM
	0731C4: Not a pointer, purpose unknown
	0731C8: PTR to RAM
0731D4: SRT
073E60: PTR table (includes TEXT)
	073E60: PTR to SRT@073E70
074250: Text PTR
074254: SRT
075C00: PTR to data block @ 160318 (after function list)
075C04: SRT
075C88: PTR to data block @ 16031C (after function list)
07FC8C: unknown data (0x4 bytes)
07FC90: SRT
075CD0: Metapointer to PTR table(?) @ 160320
075CD4: SRT
0766D0: PTR table?
	0766D0: PTR to data block(?) @ 16040C
	0766D4: unknown data (0x4 bytes)
	0766D8: PTR to data block(?) @ 1603D8
	0766DC: PTR to data block(?) @ 1603F0
	0766E0: PTR to data block(?) @ 16044C
	0766E4: unknown data (0x8 bytes)
	0766EC: PTR to data block(?) @ 1603FC
	0766F0: PTR to data block(?) @ 160424
	0766F4: unknown data (0x4 bytes)
	0766F8: PTR to data block(?) @ 1603E4
	0766FC: unknown data (0x4 bytes)
076700: SRT
077360: PTR to data block @ 160AAC (command skill data)
077364: SRT
07737C: PTR to data block @ 166B08 (offsets)
077380: PTR to data block @ 166FDC (skill name text)
077384: SRT
07739C: PTR to data block @ 166B90 (offsets)
0773A0: PTR to data block @ 167448 (passives name text)
0773A4: SRT
0773BC: PTR to data block @ 166A9C (offsets)
0773C0: PTR to data block @ 166C1C (auto skill name text)
0773C4: SRT
0773DC: PTR to data block @ 166ACC (offsets)
0773E0: PTR to data block @ 166DB4 (race skill name text)
0773E4: SRT
0773FC: PTR to data block @ 16F930 (offsets)
077400: PTR to data block @ 171038 (skill desc text)
077404: SRT
07741C: PTR to data block @ 16F9B8 (offsets)
077420: PTR to data block @ 17057C (passives desc text)
077424: SRT
07743C: PTR to data block @ 16F8C4 (offsets)
077440: PTR to data block @ 16FA44 (auto skill desc text)
077444: SRT
07745C: PTR to data block @ 16F8F4 (offsets)
077460: PTR to data block @ 16FDDC (race skill desc text)
077464: SRT
077474: PTR to data block @ 16050C (auto skill data)
077478: SRT
077488: PTR to data block @ 161A60 (passive skill data)
07748C: SRT
07753C: PTR to RAM
077540: PTR to data block @ 163424 (end of race skill desc text)
077544: SRT
07758C: SRT PTR table
077590: SRT
078954: Metapointer to PTR table @ 162A98
078958: PTR to text (":")
07895C: Metapointer to PTR table @ 16332C
078960: SRT
078B70: PTR to data block @ 1563F4 (battler data)
078B74: Probable subroutine
078E10: PTR to start of character name list
078E14: Probable subroutine
078E58: Metapointer to PTR table 5
078E5C: Probable subroutine
078F54: PTR to data block @ 16342C
	Looks like default affinity data?
078F58 & 078F8C: PTR to data block @ 1555C4 (affinity data)
078F5C: Probable subroutine
078F90: Probable subroutine
078FCC: PTR to data block @ 155524 (end of race text block)
078FD0: Probable subroutine
079388: PTR table
	079388: PTR to data block @ 1634CC (empty?)
	07938C: PTR to data block @ 1634D0 (empty?)
	079390: PTR to data block @ 1634D4 (empty?)
	079394: PTR to data block @ 16343C (empty?)
07939C: SRT
079EF0: PTR to data block @ 1650B4
079EF4: PTR to data block @ 165568 (character name list)
079EF8: SRT
079FFC: PTR to text ("?")
07A000: PTR to data block @ 1650B4
07A004: PTR to data block @ 165568 (character name list)
07A008: SRT
07A0A8: PTR to text ("?")
07A0AC: SRT
07AEC4: PTR to text ("_ZK2", half-width)
07AEC8: SRT
07EB1C: PTR to RAM
07EB20: PTR to data block @ 163544
07EB24: PTR to SRT@07F8EC
07EB28: SRT
07F8E8: Metapointer to SRT PTR table @ 1634E0
07F8EC: SRT
07F9E4: Metapointer to SRT PTR table @ 1634E8
07F9E8: SRT
081534: PTR table
	081534: PTR to data block @ 163634
	081538: PTR to data block @ 163638
	08153C: unknown data (0x4 bytes)
	081540: PTR to data block @ 163640
081548: SRT
081624: PTR to data block @ 163650
081628: SRT
08D0F4: PTR table for texture files
08D148: SRT
08E108: PTR table for cmp files
08E164: SRT
08E378: PTR table for cmp files
08E380: SRT
091FF0: PTR table (TEXT)
091FFC: SRT
092258: PTR to text
09225C: SRT
096F3C: PTR table
	096F3C: PTR to RAM
	096F40: PTR to RAM
	096F44: PTR to RAM
	096F48: Metapointer to PTR @ 166814 (text ptr)
	096F4C: PTR to RAM
	096F50: PTR to RAM
	096F54: Metapointer to PTR @ 166818 (text ptr)
	096F58: Metapointer to PTR @ 16681C (text ptr)
	096F5C: PTR table
		096F64: PTR to SRT@097454
096F80: SRT
0975CC: PTR table
	0975D4: PTR to RAM
	0975E0: PTR to RAM
	0975E4: PTR to RAM
0975E8: SRT
097C6C: PTR table but it's all outside of arm9
097C94: SRT
098DC4: PTR table but it's all outside of arm9
098DDC: SRT
099528: PTR table but it's all outside of arm9
099540: SRT
0997E8: PTR table but it's all outside of arm9
0997F4: SRT
09EEF0: PTR table (includes TEXT)
	09EEF0: PTR to RAM
	09EEF4: PTR to RAM
09EF00: SRT
09F884: PTR table (includes TEXT)
	09F884: PTR to RAM
09F8AC: SRT
0A19B0: PTR table (includes TEXT)
	0A19B8: PTR to RAM
	0A19BC: unknown data (0x4 bytes)
0A1A00: SRT
0A2280: PTR table (includes TEXT)
	0A2280: PTR to RAM
0A2294: SRT
0A26B4: PTR table
	0A26B4: PTR to RAM
	0A26B8: PTR to text
	0A26BC: PTR to RAM
0A26C0: SRT
0A6CFC: PTR table
	0A6DFC: PTR -> 167CCC (empty string)
	0A6D00: PTR to RAM
0A6D04: SRT
0A6E38: PTR table
	0A6E38: PTR -> 167CD0 (empty string)
	0A6E3C: PTR to RAM
0A6E40: SRT
0A7850: PTR table (includes TEXT)
	0A7850: PTR -> 167CD4 (empty string)
	0A7858: PTR to RAM
0A7860: SRT
0A7CA4: PTR table (includes TEXT)
0A7CC0: SRT
0A7D30: PTR table (includes TEXT)
0A7D3C: SRT
0A7DA0: PTR to empty string
0A7DA4: SRT
0A89B8: PTR table (includes TEXT)
	0A89C4: PTR to RAM
0A89C8: SRT
0A93B8: PTR table (includes TEXT)
0A93D4: SRT
0AB194: PTR table (includes TEXT)
0AB19C: SRT
0AB240: PTR table (includes TEXT)
0AB248: SRT
0AB310: PTR table (includes TEXT)
0AB324: SRT
0AC2D8: PTR table
	0AC2D8: PTR to data block @ 16AB34
	0AC2DC: PTR to data block @ 11F280
0AC2E0: SRT
0AC450: PTR table
	0AC450: PTR to data block @ 16AB34
	0AC454: PTR to data block @ 16E350
0AC458: SRT
0AC910: PTR table for system text
	0AC910: Metapointer to table @ 16AAB8 (system text)
0AC934: SRT
0AC9B8: PTR table for system text
	0AC9B8: Metapointer to table @ 16AAB8 (system text)
0AC9C0: SRT
0ACC9C: PTR table for system text
	0ACC9C: Metapointer to table @ 16AAB8 (system text)
0ACCA4: SRT
0ADE88: PTR to text
0ADE8C: SRT
0ADF84: PTR to text
0ADF88: SRT
0AFEE0: PTR to data block @ 0AFEE0
0AFEE4: SRT
0B09BC: PTR table for system text
	0B09BC: Metapointer to table @ 16AAB8 (system text)
	0B09C8: unknown data (0x4 bytes)
0B09D0: SRT
0B1150: PTR table (includes TEXT)
	0B1150: PTR to data block @ 168FEC
	0B1154: PTR to data block @ 1687C8
	0B1158: PTR to data block @ 169000
0B1168: SRT
0B2B90: unknown data (0x4 bytes)
0B2B90: PTR table
	0B2B90: PTR to data block @ 16AC50
	0B2B94: PTR to data block @ 16AC48
0B2B98: SRT
0B2CF4: PTR table
	0B2CF4: PTR to RAM
	0B2CF8: Metapointer to table @ 16AC64 (ailment info)
	0B2CFC: unknown data (0x4 bytes)
	0B2D00: unknown data (0x4 bytes)
0B2D04: SRT
0B59EC: PTR table
	0B59EC: PTR to RAM
	0B59F0: PTR to RAM
	0B59F4: Metapointer to SRT PTR table
	0B59F8: PTR to RAM
0B5A00: SRT
0B5A08: PTR to RAM
0B5A0C: SRT
0B89A8: PTR table
	0B89A8: PTR to RAM
	0B89AC: unknown data (0x4 bytes)
	0B89B0: Metapointer to SRT PTR table
	0B89B4: unknown data (0x4 bytes)
	0B89C0: PTR to RAM
	0B89C4: PTR to SRT@0B59FC
0B89C8: SRT
0BABC0: PTR to text
0BABC4: SRT
0C1960: Metapointer to SRT PTR table
0C1964: SRT
0C1B08: PTR table
	0C1B08: PTR to system text
	0C1B0C: PTR to RAM
0C1B10: SRT
0C3E98: PTR table
	0C3E98: PTR to data block @ 1683B4
	0C3E9C: PTR to data block @ 168194
	0C3EA0: PTR to data? @ 1550DC
0C3EA4: SRT
0C41F4: PTR table
	0C41F4: PTR to RAM
	0C41F8: unknown data (0x4 bytes)
	0C41FC: PTR to data block @ 16B708
0C4204: SRT
0C4A94: PTR table to... something
0C4AAC: SRT
0C5824: PTR table to... something
0C5950: PTR table to... something
	0C5968: PTR to RAM
0C596C: SRT
0C6828: PTR to... something @ 16B7E0
0C682C: SRT
0C789C: PTR to... something @ 16B8A4
0C7CA0: Metapointer to table @ 16B92C
0C7CA8: SRT
0C81F4: PTR to... something @ 16B9B4
0C81F8: SRT
0C8808: PTR to data block @ 16B8F4
0C880C: SRT
0C8838: PTR to data block @ 16B910
0C883C: SRT
0C93E0: Metapointer to table @ 16B8CC (text variables)
0C93E4: SRT
0C95E0: PTR table to... something
0C9A28: PTR to text
0C9A2C: SRT
0CA14C: PTR table
	0CA150: Metapointer to table @ 16B8E0 (dispatchment text)
	0CA154: PTR to data block @ 16B8A4
0CA160: SRT
0CA544: PTR to... something @ 16B9B4
0CA548: SRT
0CCA24: PTR table
	0CCA24: PTR to data block @ 16BF8C
	0CCA28: PTR to data block @ 16BFD4
	0CCA2C: PTR to data block @ 16BEC4
0CCA30: SRT
0D11DC: PTR table
	0D11DC: Metapointer to table @ 168C90 (area names)
	0D11E0: PTR to RAM
	0D11E4: Metapointer to PTR to filepath
	0D11E8: Metapointer to table @ 168EC0 (filenames)
	0D11EC: PTR to data @ 168EF4
0D11F0: SRT
0D1250: PTR table
	0D1250: Metapointer to table @ 168C90 (area names)
	0D1254: PTR to RAM
	0D1258: Metapointer to PTR to filepath
	0D125C: Metapointer to table @ 168DBC (empty space?)
	0D1260: PTR to filepath
0D1264: SRT
0D2818: PTR table (includes TEXT)
	0D2818: PTR to RAM
0D2828: SRT
0D34CC: PTR table (includes TEXT)
	0D34CC: PTR to RAM
	0D34E4: unknown data (0x4 bytes)
	0D34EC: unknown data (0x4 bytes)
0D34F4: SRT
0D3DE4: PTR table (includes TEXT)
	0D3DE4: PTR to RAM
	0D3DE8: PTR to text
0D3DEC: SRT
0D4170: PTR table
	0D4170: PTR to RAM
0D4184: SRT
0D4AC4: PTR table
	0D4AC4: PTR to RAM
0D4AE4: SRT
0D5048: PTR table
	0D5048: PTR to RAM
	0D5054: unknown data (0x4 bytes)
	0D5060: PTR to RAM
0D5064: SRT
0D5580: PTR table (includes TEXT)
	0D5580: PTR to RAM
0D5588: SRT
0D73E8: PTR table to filenames
0D73FC: SRT
0D749C: PTR table to filenames
0D74B0: SRT
0D75AC: PTR table to filenames
0D75C4: SRT
0D7630: PTR table to filenames
0D763C: SRT
0D7760: PTR table to filenames
0D7798: SRT
0D77DC: PTR to text
0D77E0: SRT
0D79E4: PTR table to filenames
	0D79E8: PTR to RAM
	0D79EC: PTR to RAM
	0D79F4: PTR to RAM
	0D79FC: PTR to SRT@1750E8
	0D7A00: PTR to RAM
	0D7A04: PTR to SRT@0D8074
	0D7A08: PTR to RAM
	0D7A0C: PTR to RAM
	0D7A10: PTR to SRT@0D8068
	0D7A14: PTR to RAM
0D7A18: SRT
0D829C: PTR table
	0D829C: PTR to filename
	0D82A0: PTR to RAM
0D82A4: SRT
0D8364: PTR table
	0D8364: PTR to filename
	0D8368: PTR to filename
	0D836C: PTR to RAM
0D8370: SRT
0DB30C: PTR to text (dash)
0DB310: SRT
0DC848: PTR table
	0DC848: PTR to RAM
	0DC84C: PTR to filename
0DC850: SRT
0DF794: PTR table to... something (data?)
0DF7B0: PTR table (TEXT)
0DF7D0: SRT
0DFB18: PTR to TEXT
0DFB20: SRT
0E0554: PTR table (includes TEXT)
	0E0554: PTR to RAM
	0E0558: unknown data (0x4 bytes)
0E0578: SRT
0E0968: PTR table (includes TEXT)
	0E096C: PTR to RAM
0E0974: SRT
0E0CC0: PTR table (TEXT)
0E0CCC: SRT
0E0F90: PTR table (TEXT)
0E0FA8: SRT
0E1274: PTR table (TEXT)
0E128C: SRT
0E1690: unknown data (0x4 bytes)
0E1694: PTR table (TEXT)
0E16A8: SRT
0E1ADC: PTR table (includes TEXT)
	0E1AF4: unknown data (0x4 bytes)
0E1AFC: SRT
0E1CAC: PTR table (TEXT)
0E1CB4: unknown data (0x4 bytes)
0E1CB8: SRT
0E1E30: PTR table (TEXT)
0E1E44: SRT
0E1F08: PTR table (TEXT)
0E1F30: SRT
0E1F74: PTR table (TEXT)
0E1F88: SRT
0E24AC: PTR table (includes TEXT)
	0E24B0: unknown data (0x4 bytes)
	0E24B8: unknown data (0x4 bytes)
0E24D8: SRT
0E77E4: PTR table (includes TEXT)
	0E77E8: PTR to SRT@0E09E4
	0E780C: PTR to SRT@0E0844
0E7864: SRT
0E7AB8: PTR table (includes TEXT)
	0E7ABC: PTR to SRT@0E09E4
	0E7AD4: PTR to SRT@0E0864
0E7AF8: SRT
0E834C: PTR table (includes TEXT)
	0E834C: PTR to SRT@0E0844
0E8370: SRT
0E974C: PTR to TEXT
0E9750: SRT
0EAB78: PTR to TEXT
0EAB7C: SRT
0EB6C8: PTR table (includes TEXT)
	0EB6CC: PTR to RAM
0EB6D0: SRT
0ED110: PTR table (includes TEXT)
	0ED110: PTR to data block @ 11F52C
	0ED114: PTR to data block @ 11F50C
	0ED118: unknown data (0x4 bytes)
0ED120: SRT
0EF544: PTR table (includes TEXT)
0EF54C: SRT
0EF5C4: PTR to TEXT
0EF5C8: SRT
0EF7A8: PTR table (includes TEXT)
	0EF7AC: PTR to SRT@0ED340
0EF7B8: SRT
0F0E60: PTR table (includes TEXT)
	0F0E60: PTR to outisde arm9
0F0E68: SRT
0F13A8: PTR table
	0F13A8: PTR to data block @ 16D32C
	0F13AC: PTR to outisde arm9
0F13B0: SRT
0F1428: PTR table
	0F1428: PTR to data block @ 16D2F0
	0F142C: PTR to outisde arm9
0F1430: SRT
0F14A8: PTR table
	0F14A8: PTR to data block @ 16D2D0
	0F14AC: PTR to outisde arm9
0F14B0: SRT
0F1528: PTR table
	0F1528: PTR to data block @ 16D2FC
	0F152C: PTR to outisde arm9
0F1530: SRT
0F1554: SRT
0F15D8: SRT
0F16AC: SRT
0F1704: SRT
0F25AC: PTR table
	0F25AC: PTR to RAM
	0F25B0: unknown data (0x4 bytes)
	0F25B4: unknown data (0x4 bytes)
	0F25B8: unknown data (0x4 bytes)
	0F25BC: PTR to data block @ 16D2E4
	0F25C0: PTR to data block @ 16D2D8
	0F25C4: unknown data (0x4 bytes)
	0F25C8: unknown data (0x4 bytes)
	0F25CC: unknown data (0x4 bytes)
	0F25D0: unknown data (0x4 bytes)
	0F25D4: unknown data (0x4 bytes)
	0F25D8: unknown data (0x4 bytes)
	0F25DC: PTR to data block @ 16D2D0
	0F25E0: PTR to data block @ 16D31C
	0F25E4: PTR to SRT@0F6228
	0F25E8: unknown data (0x4 bytes)
	0F25EC: unknown data (0x4 bytes)
	0F25F0: unknown data (0x4 bytes)
	0F25F4: unknown data (0x4 bytes)
	0F25F8: unknown data (0x4 bytes)
	0F25FC: unknown data (0x4 bytes)
	0F2600: unknown data (0x4 bytes)
	0F2604: unknown data (0x4 bytes)
	0F2608: unknown data (0x4 bytes)
	0F260C: unknown data (0x4 bytes)
	0F2610: unknown data (0x4 bytes)
	0F2614: PTRs to system text (variable codes?)
	0F2620: unknown data (0x4 bytes)
	0F2624: unknown data (0x4 bytes)
	0F2628: unknown data (0x4 bytes)
	0F262C: unknown data (0x4 bytes)
	0F2630: unknown data (0x4 bytes)
	0F2634: PTR to system text (variable codes?)
	0F2638: unknown data (0x4 bytes)
	0F263C: unknown data (0x4 bytes)
	0F2640: PTR to system text (variable codes?)
	0F2644: unknown data (0x4 bytes)
	0F2648: unknown data (0x4 bytes)
	0F264C: PTR to system text (variable codes?)
	0F2650: unknown data (0x4 bytes)
	0F2654: unknown data (0x4 bytes)
	0F2658: PTR to SRT@0F16AC
	0F265C: unknown data (0x4 bytes)
	0F2660: PTR to SRT@0F1704
0F2664: SRT
0F26D4: SRT
0F29A4: PTR table (includes TEXT)
	0F29A4: PTR to outisde arm9
	0F29B0: PTR to SRT@0F1554
	0F29BC: PTR to data block @ 16D2D0
	0F29C0: PTR to data block @ 16D2D8
	0F29C4: PTR to SRT@0F2664
	0F29C8: PTR to SRT@0F15D8
0F29CC: SRT
0F2ED0: PTR table (includes TEXT)
	0F2ED0: PTR to outisde arm9
	0F2ED4: unknown data (0x4 bytes)
	0F2ED8: unknown data (0x4 bytes)
	0F2EDC: unknown data (0x4 bytes)
	0F2EE0: unknown data (0x4 bytes)
	0F2EE4: PTR to TEXT
	0F2EE8: unknown data (0x4 bytes)
	0F2EEC: unknown data (0x4 bytes)
	0F2EF0: PTR to TEXT
	0F2EF4: PTR to SRT@0F26D4
	0F2EF8: unknown data (0x4 bytes)
0F2EFC: SRT
0F2F7C: PTR table
0F2F8C: SRT
0F363C: SRT
0F3728: PTR table (includes TEXT)
	0F3728: PTR to outisde arm9
	0F372C: PTR to TEXT
	0F3730: PTR to SRT@0F1554
	0F3734: PTR to SRT@0F39CC
0F3738: SRT
0F393C: PTR table (includes TEXT)
	0F393C: PTR to outisde arm9
	0F3944: PTR to SRT@0F1554
	0F3950: PTR to SRT@0F39CC
	0F3954: PTR to SRT@0F363C
0F3738: SRT
0F39CC: SRT
0F3F10: SRT
0F40E4: SRT
0F4B98: PTR table (includes TEXT)
	0F4B98: PTR to outisde arm9
	0F4B9C: PTR to data block @ 16D2FC
	0F4BA0: PTR to SRT@0F3F10
	0F4BA4: unknown data (0x4 bytes)
	0F4BA8: unknown data (0x4 bytes)
	0F4BAC: unknown data (0x4 bytes)
	0F4BB0: PTRs to TEXT
	0F4BBC: unknown data (0x4 bytes)
	0F4BC0: unknown data (0x4 bytes)
	0F4BC4: unknown data (0x4 bytes)
	0F4BC8: unknown data (0x4 bytes)
	0F4BCC: PTR to SRT@0F40E4
	0F4BD0: PTR to TEXT
	0F4BD4: unknown data (0x4 bytes)
	0F4BD8: unknown data (0x4 bytes)
	0F4BDC: unknown data (0x4 bytes)
	0F4BE0: unknown data (0x4 bytes)
	0F4BE4: Metapointer to table @ 16D30C
	0F4BE8: unknown data (0x4 bytes)
	0F4BEC: unknown data (0x4 bytes)
	0F4BF0: unknown data (0x4 bytes)
	0F4BF4: PTR to SRT@0F40C8
	0F4BF8: PTR to SRT@0F3EF0
0F4BFC: SRT
0F40C8: SRT
0F40E4: SRT
0F51B8: SRT
0F5B28: PTR table (includes TEXT)
	0F5B28: PTR to RAM
	0F5B2C: PTRs to TEXT
	0F5B38: PTR to SRT@0F51B8
0F5B3C: SRT
0F6000: PTR table (includes TEXT)
	0F6000: PTR to RAM
	0F6010: PTRs to TEXT
0F601C: SRT
0F6338: SRT
0F6644: PTR table (includes TEXT)
	0F6644: PTR to RAM
	0F6650: PTRs to TEXT
0F665C: SRT
0F66D8: PTR table (includes TEXT)
	0F66D8: PTR to RAM
	0F66DC: PTRs to TEXT
	0F66E4: PTR to SRT@0F59F0
0F66E8: SRT
0F6EC8: PTR table (includes TEXT)
	0F6EC8: PTR to RAM
	0F6EF4: PTR to data block 16D2D0
	0F6EF4: PTR to data block 16D31C
	0F6F00: PTR to SRT@0F6338
	0F6F04: PTRs to TEXT
0F6F0C: SRT
0F73B0: PTR table
	0F73B0: PTR to RAM
	0F73B4: PTR to data block 16D33C
	0F73B8: PTR to data block 16D32C
	0F73BC: PTR to SRT@0F6338
0F73C0: SRT
0F74A4: PTR table
	0F74A4: PTR to RAM
	0F74A8: PTR to data block @ 16D738
0F74AC: SRT
0F7AD0: PTR table
	0F7AD0: PTR to data block @ 16D73C
	0F7AD4: PTR to data block @ 16D744
0F7AD8: SRT
0FCD14: PTR to data block @ 16B9B4
0FCD18: SRT
0FE26C: PTR table to system text
100560: PTR to data block @ 16D93C
10100C: Metapointer to table @ 16DACC
101010: SRT
1010F4: PTR to null string?
1018D8: PTR table (includes TEXT)
	1018D8: PTRs to RAM
	1018F4: Metapointer to SRT@101F3C
	1018F8: Metapointer to table @ 16DAD0
	1018FC: PTRs to RAM
	101900: PTR to TEXT
	101904: PTR to SRT@102090
	101908: PTRs to TEXT
101910: SRT
101ED0: PTR to TEXT
101ED4: SRT
1020AC: SRT
102130: PTR table (includes TEXT)
	102134: PTR to RAM
102148: SRT
102268: SRT
102838: PTR table (includes TEXT)
	10283C: PTR to SRT@1020AC
	102840: PTR to SRT@102268
	102844: PTR to SRT@102148
	102848: PTRs to TEXT
102854: SRT
1028CC: PTR table (includes TEXT)
	1028CC: PTR to RAM
	1028D0: PTRs to TEXT
1028E0: SRT
102958: PTR table (includes TEXT)
	102958: PTR to RAM
	10295C: PTRs to TEXT
10296C: SRT
102B94: PTR table (includes TEXT)
	102B94: PTR to TEXT
	102B98: PTR to RAM
	102B9C: PTR to SRT@102854
	102BA0: PTR to SRT@102444
	102BA4: PTR to SRT@1028E0
	102BA8: PTR to null string
102BAC: SRT
102C20: PTR table (TEXT)
102C30: SRT
102FF4: PTR table (includes TEXT)
	102FF4: PTR to SRT@102BAC
	102FF8: PTR to SRT@102268
	102FFC: PTR to SRT@102148
	103000: PTRs to TEXT
10300C: SRT
103070: PTR table (TEXT)
10307C: SRT
103354: PTR table (includes TEXT)
	103354: PTR to SRT@10300C
	103358: PTR to SRT@102268
	10335C: PTR to SRT@102148
	103360: PTRs to TEXT
	103368: PTR to RAM
	10336C: PTRs to TEXT
103374: SRT
1034C8: PTR table (TEXT)
1034D4: SRT
104838: PTR to data block @ 16F7DC (command skill folder)
10483C: SRT
10484C: PTR to data block @ 16F848 (passive skill folder)
104850: SRT
104860: PTR to data block @ 16F720 (auto skill folder)
104870: PTR to data block @ 16F750
104880: PTR to data block @ 16F794
104890: PTR to data block @ 16F6E8
1048A0: PTR to data block @ 16F700
1048A4: SRT
104BCC: PTR table
	104BCC: PTR to SRT@104EA8
	104BD0: PTR to SRT@104EC8
	104BD4: PTR to data block @ 171BE4
	104BD8: PTR to data block? @ 17246C
	104BDC: PTR to data block? @ 171C14
104BE0: SRT
104EA8: SRT
104EC8: SRT
106354: PTR table (includes TEXT)
	106354: PTR to RAM
	10636C: PTR to SRT@1080E0
106384: SRT
109070: PTR table (includes TEXT)
109094: SRT
10A7FC: Field Skills + subroutines?
	(text pointers usually preceded by pointers to filenames)
	10A7FC: PTR to TEXT
	10A780: SRT
	10AF20: PTR to TEXT
	10AF24: SRT
	10B300: PTR to TEXT
	10B304: SRT
	10BB00: PTR to TEXT
	10BB04: SRT
	10C728: PTR to TEXT
	10C72C: SRT
	10D1A4: PTR to TEXT
	10D1A8: SRT
	10D77C: PTR to TEXT
	10D780: SRT
	10E598: PTR to TEXT
	10E59C: SRT
	10E7CC: PTRs to TEXT
	10E7D4: SRT
	10FBF0: PTR table
		10FC18: unknown data (0x4 bytes)
		10FC1C: PTR to RAM
		10FC20: PTR to TEXT
10FC24: SRT
10FF30: PRT to TEXT
10FF34: SRT
10FF74: PRT to TEXT
10FF78: SRT
110984: PRT table (TEXT)
1109B0: SRT
110AFC: PRT table (TEXT)
110B10: SRT
110C14: PTR to TEXT
110C18: SRT
113C08: PTR table (includes TEXT)
	113C08: PTR to RAM
	113C0C: PTR to data block @ 17427C
	113C10: PTR to data block @ 1742D0
	113C14: unknown data (0x4 bytes)
	113C18: PTR to data block @ 174284
	113C1C: PTR to TEXT
	113C20: unknown data (0x4 bytes)
	113C24: PTR to data block? @ 116F38
	113C28: PTRs to TEXT
	113C30: PTR to SRT@112D30
	113C34: PTRs to TEXT
	113C3C: PTR to data block @ 1742FC
	113C44: PTR to RAM
	113C48: PTRs to TEXT
113C54: SRT
11473C: PTR table
11477C: SRT
11C140: PTR table for formatting messages
139462: empty (0x6 bytes)
15327C: appears to be a character table of some kind
	each character code is appended with an incrementing number, starting with 0
154CD4: empty (0x8 bytes)
154CE8: looks like a pointer table, but destination unclear
	Pointer -> 0213E0
15553C: PTR table 6 (races)
155524: 11 2-byte numbers? Purpose unknown
	-constantly accessed on fusion menu when demon is selected or while searching for fusions
	-alteration produces no visible effect
15553A: FF spacer (0x2 bytes)
1555C4: Affinity data
15587C: Battler name strings
1563F4: Character data
156400: Unknown
1592A8: "lastE"
	159300 -> this
	159308 possibly related, purpose unknown
1592B0: "lastA"
	1592E0 -> this
	1592E8 possibly related, purpose unknown
1592B8: "lastF"
	159310 -> this
	159318 possibly related, purpose unknown
1592C0: "lastB"
	1592F0 -> this
	1592F8 possibly related, purpose unknown
1592C8: Unknown
159410: Unknown
1595A0: empty (0x10 bytes)
1595B0: looks like a pointer table, but destination unclear
	Pointer -> 04D15C
159600: empty (0x18 bytes)
1596A0: PTR table (TEXT)
1596C0: PTR table (TEXT)
	(even though these 2 are continuous, they are referenced by metapointers as separate tables)
159754: PTR table (SRTs)
	each pointer appended with an incrementing number, starting with 1
159910: PTR to sound filepaths
159C50: PTR table to sound filenames
15B994: Data block, purpose unknown
15BDF0: empty (0x40 bytes)
15C9F0: empty (0x40 bytes)
15CADC: SRT PTR table
15CF54: empty (0x40 bytes)
15CF98: Possible pointer -> 21957AC (beyond ARM9.bin)
15D850: empty (0x20 bytes)
15DC7C: appears to be the beginning of a data pattern that repeats several times with gaps of 0x70 empty bytes
15F87C: PTR table to various system messages
15F8B0: functions?
	pointers start @ 15F87C
	15F8B0: "crisSsPly_Play"
	15FA00: "Invalid handle."
	15FA10: "%s:%s" (possibly for displaying time?)
15FA1C: looks like a pointer table, but destination unclear
15FB14: Data block? (multiple pointers point here)
	15FB14: FF FF FF 01
	15FB18: FF 00 00 00
	15FB1C: PTR -> 11F01C (?)
	15FB20: PTR -> 11F030 (?)
15FB24: PTR table (includes TEXT)
15FB38: Overworld message strings
1602C4: Function names?
	(these are in half-width ASCII characters)
	1602C4: "END"
		1603C4 -> this
	1602C8: "NONE"
		160344 -> this
	1602D0: "NULL"
		160324 -> this
		16032C -> 0748A4 (subroutine?)
			push	{r3, r4, lr}
			sub		sp, sp, #4
			mov		r4, r0
			bl		#0x10006EA48
	1602D8: "FATK"
		160364 -> this
	1602E0: "OPROC"
		160354 -> this
	1602E8: "PREACT"
		160384 -> this
	1602F0: "ACTION"
		160394 -> this
	1602F8: "CHKEXT"
		1603A4 -> this
	160300: "ENSHUTU"
		160334 -> this
		160338 -> 074994 (subroutine?)
			bx lr
		16033C -> 074998 (subroutine?)
			push	{r3, lr}
			bl 		#0x10006EA48
		16033C -> 0749D0 (subroutine?)
	160308: "COMMAND"
		160374 -> this
	160310: "ENDPROC"
		1603B4 -> this
1603D8: looks like a pointer table, but destination unclear
1604E0: looks like a pointer table, but destination unclear (subroutines?)
16040C: Unknown data
	First 8 bytes referenced constantly when not in battle. Playtime/animation related?
16050C: Auto skill data
160AE8: Command skill data
162A8C: empty (0xC bytes)
162A98: PTR table (TEXT)
16332C: PTR table (TEXT)
163424: Unknown data
165568: Character & demon names (Leader headers)
1666D8: "CRACK" (full-width, so must be ingame text)
166744: Strategy option strings
166814: PTR table (TEXT)
	16681C: PTR to SRT@097354
	166828: PTR to SRT@0973C8
	166824: PTR to SRT@097378
	166840: PTR to SRT@0973A8
166844: Text
166B08: Skill name offsets
166C1C: Auto skill strings
166DB4: Racial skill strings
166FDC: Skill strings
167448: Passive strings
167948: "Summon"
167958: "Return"
	1679AC: "Return a demon to your stock."
	1679E8: "Return <cl=%x>?"
	167A00: "Yes"
	167A08: "No"
167A10: Misc battle messages
167CD0: empty (0x8 bytes)
167CD8: Affinity markers
167D84: Text strings of 4-digit numbers, in half-width
	167D84: "9011"
	...
	16818C: "0803_F"
1681AC: Pointers to the 4-digit number strings
	do not match the order of the strings
	(why is this even necessary, the strings have uniform length)
1683B6: Unknown (data?)
168790: empty (0x40 bytes)
	168C90 -> here for some reason
	168DD4 -> here for some reason
1687D8: Location strings & filenames
168C90: Pointers to location strings (non-sequential)
168D04: Unknown (data?)
168DC8: Pointer -> "place_01_ueno"
	(a lot of what seem to be pointers interspersed with other data)
168EB8: More pointers to location strings (non-sequential)
	Each pointer is appended with 1 byte of additional data, purpose unknown
168FEE: Unknown (data?)
16AB34: Unknown data
	Array? Each element is a 4-digit number prepended by a 2-digit number. The 2-digit number increments sequentially.
16AC64: PTR table (TEXT)
16AC80: Ailment messages
16B300: "???"
16B308: "Fushimi"
16B318: "Izuna"
16B324: looks like a pointer table, but destination unclear (subroutines?)
16B66C: "Yes"
16B674: "No"
16B67C: "%s gained spiritual powers and learned %s!"
16B6D8: "DATA/Effect/battle_effect.tbl"
16B7C0: various symbols and text codes
	16B8CC: pointers for these (non-sequential)
	16BB1C: pointer cont. (non-sequential)
16B92C: PTR table, destinations unclear
16B9F0: misc dispatchment messages
16BB70: Unknown (data?)
16BEA0: "%ld"
16BEA4: "%010ld"
16BEAC: "%10ld"
16BEB4: "sp_pixie_00"
16BEC0: Unknown (data?)
16C0F4: "%s/%s%s.ntfp"
16C104: "%s/%s%s.ntfp"
16C114: Skill crack messages
16C94C: Misc GUI text
16D30C: PTR table (TEXT)
16D770: "DEVILSURVIVOR_US"
16D96C: Menu options and system text
16DACC: PTR table (includes TEXT)
	16DAD4: PTR to SRT@101F3C
	16DAE0: PTR to SRT@101E4C
	16DAEC: PTR to SRT@101ED4
	16DAF8: PTR to SRT@101F08
	16DB04: PTR to SRT@101E28
	16DB10: PTR to SRT@101FD8
16DB14: Text
16E350: Email data
16F7DC: Command Skill folder
	each slot is 2 bytes, ID# corresponds to skill database order
16F848: Passive Skill folder
	each slot is 2 bytes, ID# corresponds to skill database order
171BE4: Unknown (data?)
172EE4: Summon strings
172FD8: Menu option descriptions
173198: Skill effect filenames?
	Pointers @ 173678, non-sequential
	173198: "sp_fuka"
	...
	173668: "sp_babe2_clo00"
173D5C: Field effects/messages
17427C: Unknown (data?)
174340: Revival strings
17500C: "EpilogueA:100%"

--------------------------------------------
Affinity data (0x1555C4)
--------------------------------------------
Each type block is 0x6 bytes (1 byte for each element). Goes in the same order as on the display screen (physical, fire, ice, electric, force, mystic).
Byte value determines affinity:
	00 = Null
	01 = Reflect
	02 = Drain
	03 = Strong (25% damage)
	04 = Strong (50% damage)
	05 = Strong (75% damage)
	06 = Neutral
	07 = Weak
	(sometimes high nibble has a value of 8 or 4, purpose unknown)

Affinity sets ARE NOT UNIQUE for each demon. Byte 0x17 of the character's data block holds the affinity type, and the ID numbers correspond to the order in which the affinity sets appear in this block.
	Total Types: 115 (counting human type as 0)

The order of affinity types correlates with the order of characters in the character data block. Type 0 is used for humans, Type 1 is used for Black Frost, Type 2 is used for Sarasvati and Kukuri-Hime (the first 2 demons), Type 3 is used for Brigid (the 3rd demon), and so on.

Almighty resistance IS NOT ENCODED HERE. Hacking Beldr's type (Type 111) onto another enemy does not confer Almighty immunity.

--------------------------------------------
Skill folder (0x16F720)
--------------------------------------------
Encodes the size and order of the skill folders. Each entry is 2 bytes and each folder ends with a 0xFFFF stop token. Moving the stop token can increase or decrease the size of the folder to let you add additional skills, though the added space will eat into other data blocks.

16F720: Auto skills
	pointer @ 104860
16F7DC: Command skills
	pointer @ 104838
16F848: Passive skills
	pointer @ 10484C

There are pointers to 4 data blocks in close vicinity, but the blocks' purpose is unknown. They are:
16F750
16F794
16F6E8
16F700

--------------------------------------------
Character data (0x1563F4)
--------------------------------------------
Each character block is 0x3C bytes and has the following format:
	+00: unknown (0x2 bytes)
		seems to correlate with ID?
	+02: unknown (0x2 bytes)
		seems to correlate with ID?
		identical with +00 UNTIL Black Frost, for whom it is FFFF; everyone downstream is off by 1
		accessed on overworld load
	+04: address of name string (relative to start of block @ 15587C)
	+06: unknown (0x2 bytes)
		increases with every entry
	+08: unknown, possibly base EXP reward (0x2 bytes)
		= 0 for humans
	+0A: Macca drop (0x2 bytes)
		= 0 for humans
	+0C: HP growth
		1st byte is a decimal value, = value/255
		2nd byte is ones place
	+0E: MP growth
		1st byte is a decimal value, = value/255
		2nd byte is ones place
	+10: Race (corresponds to pointer order)
		+11: ID within race (demons only)
	+12: unknown, possible bit flag
		= 0xFF for most entries
		= 0x02 for Makara, Pendragon, Seiryuu, Orochi, Basilisk, Suparna, Vidofnir, Badb Catha, Decarabia, Murmur
		= 0x05 for Toubyou, Python, Culebre, Gagyson, Nisroc, Orobas
		= 0x00 for Ym
		= 0x06 for Moh Shuvuu
		= 0x0C for Agares, Barong
		= 0x03 for Heqet
		= 0x07 for Bai Ze, Airavata, Ukano Mitama
		= 0x04 for Pixie
		= 0x0A for Berserker
		= 0x08 for Yaksa
	+13: unknown
		consistently = 0xFF
	+14: unknown
	+15: base Level
	+16: base Move
	+17: elemental affinity type (matches order in the affinity data block)
	+18: base St/Ma/Vi/Ag in that order (0x1 byte each)
	+1C: St/Ma/Vi/Ag growth in that order (0x1 byte each)
		average = 4
	+20: Skill 1
		+21: Unlock Level
		(0 if starting skill)
	...
	+2A: Passive 3
		(boss skills are not stored here)
	+2C: unknown
	+2D: unknown
		consistently = 0x78 (120) for humans & Black Frost
	+2E: unknown
	+2F: empty (0x1 byte)
	+30: base Speed
	+31: unknown
	+32: uniqueness
		0 = non-unique
		1 = unique
		2 = ??? (human enemies)
		3 = can't be fused
	+33: unknown
		= 1 for humans and SOME demons (Norn, Yama, Shiva, Pazuzu, Abaddon, Arioch, Kazfiel, Remiel, Metatron, Moh Shuvuu, Gagyson, Orobas, Decarabia, Pixie, Loki, Lucifer, Kobold, maybe others)
		= 0 for most demons
	+34: empty (0x2 bytes)
	+36: Graphics ID
	+38: unknown bit flag
		unset for most entries
		X1 set for Moh Shuvuu, Heqet, Barong, Kobold
		X8 set for Makara, Seiryuu, Pendragon, Orochi, Toubyou, Basilisk, Python, Culebre, Suparna, Vidofnir, Badb Catha, Decarabia, Bai Ze, Airavata, Barong, Kobold
		4X set for Moh Shuvuu, Heqet
		8X set for Pendragon, Orochi, Gagyson, Berserker
	+3A: unknown
		consistently = 1
	+3B: unknown
		consistently = 0x10
		= 0x14 for Mai, Honda, Black Frost, demons
	
Blocks follow battler ID order:

1563F4: Hero
156430: Atsuro
15646C: Yuzu
1564A8: Gin
1564E4: Kaido
156520: Keisuke
15655C: Midori
156598: Haru?
1565D4: Mari
156610: Amane
15664C: Izuna
156688: Mai?
1566C4: Honda?
156700: Black Frost
15673C: Naoya
...
156F70: Sarasvati
(etc.)
15925C: Priestess

--------------------------------------------
Skill data (0x16050C)
--------------------------------------------
Auto, command, and passive skills are encoded here. Racial and field skills are NOT, location unknown.

Each block is 0x3C bytes and has the following format:

+00: Skill Class
	00 = Command
	01 = Passive
	02 = Auto
+01: unknown
	usually = 02, some exceptions
+02: Stat Requirement 1
	0 = Strength
	1 = Magic
	2 = Vitality
	3 = Agility
	4 = None
+04: Value for stat requirement 1
+06: Stat Requirement 2
+08: Value for stat requirement 2
+0A: unknown
	usually = 02, some exceptions
+0B: Determines if skill can be used under Mute
	(note that skill must ALSO cost HP for Yes to be valid)
	00 = Yes
	01 = Yes
	02 = No
+0C: Cost type
	00 = No cost
	01 = HP (exact value)
	02 = MP
	03 = HP (percentage)
	04 = Cost field is blank (used for passives etc.)
+0D: unknown, possibly related to cost type
+0E: Cost												(0x2 bytes)
	-if +0C = 01, HP cost will be this value exactly (like MP)
	-if +0C = 03, this % of max HP will be the cost
+10: Governing stat
	(this is a bit weird, altering from intended value produces very weak output but damage does definitely scale with the stated stat)
	0 = Strength
	1 = Magic
	2 = Vitality
	3 = Agility
	4 = Used for support skills but comes out as Magic on attack skills
	5 = Devil's Fuge (level?)
+11: Element
	7 = Devil's Fuge
+12: Accuracy (%)
+13: Area of Effect
	0 = single
	1 = all
	2 = field
	4 = random
+14: Target
	1 = allies
	2 = enemies
	3 = all battlers
+15: Special targeting modifiers
	01 = self only
	10 = Beldr only
	22 = dead only
+16: unknown											(0x2 bytes)
	usually = 0001
+18: Minimum Hits
+19: Maximum Hits
+1A: Effect
	00 = No Direct Effect
	01 = Damage
	03 = Healing
	04 = Full heal
	06 = Drain HP
	07 = Reduce HP by (Power)%
	09 = Multi-Hit
	0A = Damage (scales with HP)
	0B = Suicide Attack
	0C = Nondamaging
	0D = Escape from battle
	0E = Power Hit
	0F = Mighty Hit
+1B: unknown, possibly unused space for effect codes
+1C: Power												(0x2 bytes)
	-if +1A = 09, this is read differently
+1E: Effect on target's MP
	0000 = None
	0001 = Damage
	0002 = Also damage?
	0003 = Restore MP
	0004 = Restore MP?
	0005 = Damage (but much weaker, different formula?)
	0006 = Drain
	0010 = unknown
+20: MP effect power									(0x2 bytes)
+22: unknown											(0x2 bytes)
	usually = 0001
+24: Ailment Controller
	0 = None
	1 = Inflicts
	2 = Cures
+25: Ailment effect chance
+26: Ailment code
	-if +24 = 2, skill cures this ailment
+28: unknown
+2A: Buff
	0000 = None
	0001 = Taunt
	0002 = Auto-Crit
	0004 = Shield All
	0008 = Phys Repel
	0010 = Magic Repel
	0020 = Guard
+2C: Ailments triggering special effect
	0000 = None
	0024 = Instant kill to Mute/Palz
	07FC = Extra damage vs. afflicted
+2E: unknown											(0x2 bytes)
+30: Passive/Auto Effect
	--Passive Effects--
	00000000 = None
	00000001 = Trigger on attack
	00000002 = HP
	00000004 = MP
	00000008 = Crit Chance
	00000010 = Vampirism
	00000020 = Attack All
	00000040 = Counter Chance
	00000080 = Damage
	00000100 = Resistance
	00000200 = Anti-Most
	00000400 = Anti-All
	00000800 = Immunity
	00001000 = Drain
	00002000 = Repel
	00004000 = EXP
	00008000 = Endure
	00010000 = HP Regen
	00020000 = MP Regen
	00030000 = HP&MP Regen
	00040000 = Pierce
	00080000 = Race-Offense
	00100000 = Race-Defense
	00200000 = Dual Shadow
	00400000 = Extra Turn
	00800000 = Extra Action
	01000000 = Knight Soul
	02000000 = Paladin Soul
	04000000 = Hero Soul
	08000000 = Leader Soul
	--Auto Effects--
	00000000 = None
	00000001 = Agility Boost
	00000002 = Accuracy Boost
	00000004 = Evasion Boost
	00000008 = Defense Boost
	00000010 = Offense Boost
	00000020 = Damage -> MP
	00000040 = Battle Aura
	00000080 = Half MP Cost
	00000100 = Ban
	00000200 = Healing
	00000400 = Revive
	00000800 = Magic Yin
	00001000 = Rage Soul
	00002000 = Grace
	00004000 = Full Might
	00008000 = Wall
	00010000 = Barrier
	00020000 = Auto Stop
+34: Buff Power											(0x2 bytes)
	usually a percentage value
+36: Secondary Buff Power								(0x2 bytes)
	used for MP regen and extra actions
+38: Ailment for "trigger on attack" passive			(0x2 bytes)
+3A: Linked property for passives
	used for the elemental boosts, otherwise set to 06 (Almighty)
+3B: unknown

--------------------------------------------
Email data (0x16E350)
--------------------------------------------
Each data block is 0x28 bytes with the following format:

+00: Folder
	0 = Main
	1 = Laplace Mail
	2 = System Mail
+01: Position within folder (lower numbers listed first)
+04: Offset for subject line
+08: Offset for sender name
+0C: Offset for body text
	(offsets are added to base pointer in overlay 2)
+10: # of replies
+14: Offset for reply 1
+18: Offset for reply 2
+1C: Offset for reply 3
+20-24: Reply results?
	(either 0xFFFF for 0x01##, numbers may correspond to email chains?)
+26: empty (0x2 bytes)

============================================
arm7.bin (0x2380000)
============================================
Source:	0x01FD000
Entry:	0x2380000
Size:	0x0026F28

Appears to contain only opcodes.

============================================
OVERLAYS
============================================
Source:	0x0179800
All overlay addresses are offset by 0x219D7E0
--------------------------------------------
9_0
--------------------------------------------
Contains opcode.

1590: Value of 0xC0C9FF01, which means nothing in ARM but does mean something in THUMB
	-this is followed by 3 opcodes, then this byte string again; this is repeated once with the same 3 opcodes, then ARM code appears to resume after this byte string again
	-is this THUMB code or data?
15B4: Code resumes (?)
1680: Pointer? -> 02181070
	-this string of bytes is repeated in several locations throughout the file, don't know if it's code or data
4320: Data block?
4350: Data? Could be affinity types, 3 sets of 6 bytes with values between 00-07
4368: Data?

--------------------------------------------
9_1
--------------------------------------------
Size: 0x15340

Contains general auction text.

02B2C: PTR to SRT
04318: SRT pointer table
044A0: PTR to data? @ 0CDE0
044A4: PTR to data? @ 0CDD4
04928: PTR to data? @ 0CF64
04AF4: SRT pointer table
04CC4: PTR to data? @ 0D398
04DE8: PTR to data? @ 0D398
06D00: PTR to SRT
0816C: PTR to pointer table? @ 0CF4C
081D4: Metapointer table
	081D4 -> 0EAB4
	081D8 -> 0EC94
	081DC -> 0EA3C
	081E0 -> 0EBA4
	081E4 -> 0EB2C
08A4C: Metapointer table
	08A4C -> 0E9C4
	08A50 -> 0EC1C
	08A5C -> 0ED0C
	08A60 -> 0ED84
0939C: Metapointer? table
	0939C -> 0CF90
	093A0 -> 0CF74
	093A8 -> 09228
09C20: PTR to data? @ 0CF40
0A13C: PTR to SRT
0B198: PTR to SRT
0B1AC: PTR to SRT
0C258: PTR to SRT
0C25C: PTR to pointer table? @ 0CF58
0C260: PTR to pointer table? @ 0CF4C
0C268: PTR to SRT
0CAB8: PTR to SRT
0CDBC: PTR to SRT
0CDCC: PTR to SRT

--------------------------------------------
9_2
--------------------------------------------
Size: 0x146E0

Contains email text.

000D0: PTR to data? @ 01FE8
00B68: Metapointer to PTR -> 01FE0
01FE0: Data?
01FE4: PTR to SRT
01FE8: Data?
02004: UI Text begins
02418: Message text begins

Pointers to the email text base appear to be located at:
00B64
00C2C
018C4
All point to 0x02418 (message text start). To find specific message texts, add the offsets located at 0x16E350 in the ARM9.

--------------------------------------------
9_3
--------------------------------------------
Size: 0x34C0

Contains text for protagonist name entry.

Contains several data? blocks that each begin with 0x021A05B4 (pointer?), then a set of incrementing 3-byte numbers.

Contains several pointers that appear to point to the very end of the file.

0040: PTR?
01B4: PTR table
	01B4: PTR to SRT@0000
	01B8: PTR to SRT@0024
	01BC: PTR to SRT@0048
	01C0: PTR to SRT@006C
	01C4: PTR to EOF
	01C8: Data? Offset?
	01CC: PTR to SRT@24DC
	01D0: unknown
01D4: SRT
07E8: Data?
0808: SRT
0E08: PTR?
0E0C: Data?
0E30: SRT
1120: PTR?
1124: Data?
1170: SRT
1350: PTR table?
135C: SRT
1B5C: PTR?
1B60: Data?
1C00: PTR table?
1C0C: SRT
2C60: PTR table to text
2C70: Data?
2C74: PTR table to text
	2C88: PTR to RAM?
2C8C: Empty? (0x14 bytes)
2CA4: Characters? Data?
2E08: Data?
2EB0: PTRs to the single characters in the 2CA4 block
33D8: Text

--------------------------------------------
9_4
--------------------------------------------
Size: 0x17160

Contains text for the fusion menu. See Cartographer dump for string and pointer positions.

Oddly, pointer tables in this file are very scattered and fragmentary. Many strings are also duplicates.

0D984: Metapointer to pointer table
14BFC: Data?
14D40: Data?
14E6A: Data? Pointers? Offsets?
15010: Text

--------------------------------------------
9_5
--------------------------------------------
Size: 0x25E0

Contains text for the summoning program. See Cartographer file for pointers, they're all over the place.

No apparent data blocks other than text, all opcode.

24A0: Text

--------------------------------------------
9_6
--------------------------------------------
Size: 0x19E0

Seemingly all opcode. A few filepaths at the end, seemingly referring to the opening movie.

--------------------------------------------
9_7
--------------------------------------------
Size: 0xB20

Almost entirely opcode. Purpose unknown.

050: Data?

--------------------------------------------
9_8
--------------------------------------------
Size: 0x2740

Contains error message text. Almost entirely opcode, purpose unknown.

25C0: Data?
2614: Text

--------------------------------------------
9_12
--------------------------------------------
Contains profile menu navigation text.

--------------------------------------------
9_17
--------------------------------------------
Contains text for Yuzu's ending movie.

--------------------------------------------
9_20
--------------------------------------------
Contains text for general skill-related messages.

********************************************
TARGET.BIN
********************************************
This file bundle contains the majority of data in the game. It can be unpacked into its component files using Atlus Packer by CUE, but this produces glitches in some files, so it is recommended to examine them in the Target.bin file itself.

============================================
AUCTION DATA (Auction/ds_action.bin)
============================================
0x00000 in Target.bin

Pointers within this file are 4 bytes and correspond to the address in the .bin file.

00000: Pointer to start of data -> 0x000C
00004: Pointer to start of demon pointer block -> 0x018C
00008: Pointer to start of bidder data -> 0x661C
0000C: # of unlock conditions
	Value = 9 though there are only 8 unlocks, possibly one was cut
00010: Unlock condition pointers start
	Points to 0x0034, which is empty (cut unlock?)
0003C: Unlock conditions
	Lists demons that are automatically unlocked for auction on given days. Each day's block has the following format:
	+0000: block ID (increments sequentially)
	+0004: # of unlocks
	+0008: entries start
		Each entry contains the time of day (in minutes from 00:00) the auction unlocks (0x2 bytes) followed by the auction ID (0x2 bytes).
	
	0003C: Day 1
		Pixie			09:30
		Kobold			09:30
		Kabuso			09:30
		Ogre			09:30
		Waira			12:30
		Ogun			17:30
		Bilwis			17:30
		Kikimora		18:30
	00064: Day 2
		Moh Shuvuu		09:00
		Jambavan		09:00
		Garm			12:30
		Jack Frost		17:00
		Lilim			17:00
	00080: Day 3
		Gagyson			09:00
		Makara			09:00
		Toubyou			09:00
		Tlaloc			09:00
		Gozuki			09:00
		Heqet			09:00
		Wendigo			13:00
		Pyro Jack		13:00
		Nekomata		15:00
		Mezuki			16:30
		Yuki Jyorou		16:30
		Silky			18:00
	000B8: Day 4
		Suparna			09:00
		Pendragon		09:00
		Heimdall		09:00
		Cait Sith		12:00
		Basilisk		12:00
		Peri			16:00
		Afanc			16:00
		Loa				16:00
	000E0: Day 5
		Vidofnir		09:00
		Nisroc			09:00
		Ym				12:00
		Lorelei			15:00
		Mothman			15:00
		Orthrus			18:00
		Legion			18:00
	00104: Day 6
		Hanuman			09:00
		Badb Catha		09:00
		Orobas			09:00
		Python			12:00
		Berserker		15:00
		Vivian			18:00
		Mitamas			18:00
		sets			18:00
	00144: Day 7
		Airavata		09:00
		Decarabia		09:00
		Culebre			09:00
		Rangda			13:00
		Yaksa			14:00
		Cerberus		14:00
		Seiryuu			16:00
		Ukano Mitama	16:00
		Behemoth		17:00
	00170: Day 7 (non-Yuzu)
		Agares			20:00
		Orochi			20:00
		Ganesha			20:00
		Murmur			20:00
		Barong			20:00
0018C: # of demon data blocks, value = 68
00190: Start of demon data pointers. Points to start of demon data block.
	002A0: Pixie
	00420: Kobold
	0057C: Kabuso
	006F0: Ogre
	00844: Moh Shuvuu
	009C8: Waira
	00B50: Ogun
	00CB0: Bilwis
	00E30: Heqet
	00FA8: Jambavan
	01134: Kikimora
	01288: Garm
	013DC: Gagyson
	01564: Makara
	016C4: Jack Frost
	01848: Toubyou
	019BC: Lilim
	01B38: Tlaloc
	01C90: Gozuki
	01DD0: Suparna
	01F44: Wendigo
	020C4: Pyro Jack
	02238: Nekomata
	023C0: Yuki Jyorou
	02538: Pendragon
	026B0: Mezuki
	0281C: Heimdall
	029B8: Silky
	02B40: Cait Sith
	02CC0: Basilisk
	02E14: Vidofnir
	02FA8: Afanc
	03118: Nisroc
	03280: Loa
	03400: Ym
	03568: Hanuman
	036E0: Lorelei
	03844: Badb Catha
	039AC: Mothman
	03B20: Orthrus
	03C94: Orobas
	03E04: Legion
	03F84: Peri
	040E4: Python
	0425C: Airavata
	043DC: Berserker
	04534: Decarabia
	046DC: Vivian
	04854: Seiryuu
	049B8: Culebre
	04B58: Rangda
	04CC4: Yaksa
	04E10: Ukano Mitama
	04F9C: Cerberus
	050F4: Agares
	05270: Orochi
	053FC: Ganesha
	05584: Behemoth
	05700: Murmur
	05870: Barong
	059D4: Ara Mitama
	05B6C: Nigi Mitama
	05CCC: Kusi Mitama
	05E60: Saki Mitama
	05FFC: Pixie set
	0619C: Kobold set
	06320: Ogre set
	06498: Kikimora set
0661C: # of bidder data blocks, value = 24
	06620: Judah S
	06650: Carol J
	06680: Finnegan
	066B0: Mayone
	066E0: Six
	06710: Yuichi
	06740: Lunch
	06770: Dr. Thrill
	067A0: Dinner
	067D0: Reiho
	06800: Naomi
	06830: Urabe
	06860: Muramasa
	06890: Mary
	068C0: Victor
	068F0: Ginko
	06920: Spooky
	06950: Nemissa
	06980: Kadokura
	069B0: Nishi
	069E0: Kuzunoha
	06A10: Hero
	06A40: Nakajima
	06A70: Yumiko
06AA0: Bidder name strings

--------------------------------------------
Bidder data
--------------------------------------------
+0000: Pointer to bidder name			(0x4 bytes)
+0004: unknown							(0x2 bytes)
+0006: unknown							(0x2 bytes)
	(always = 0?)
+0008: unknown							(0x14 bytes)
+001C: unknown							(0x4 bytes)
	(some correlation to bidding thresholds, if it's too low bidder only appears in low-quality bids and if it's 0 they default immediately)
	(however, remains in a range of ~150-250 across all ranks so can't directly correlate to auction prices)
+0020: unknown							(0x10 bytes)
	Appears to be a set of 8 2-byte numbers. Each number is larger than the previous, and numbers are higher at higher ranks.
	(bid ranges?)

--------------------------------------------
Demon data
--------------------------------------------
Separate block of data for each demon. Each demon has 3 variants (good/average/poor in that order).

Each demon block has the following header:
	Auction ID#							(0x2 bytes)
		Note: IDs 33 (between Afanc and Nisroc) and 46 (between Python and Airavata) are missing. This implies there once existed auctions with those IDs that were removed late in development.
	Demon ID#							(0x2 bytes)
		(human IDs are valid)
	rank								(0x2 bytes)
		(0 = basic, 1 = gold, 2 = platinum, 3 = occult)
	base level							(0x2 bytes)
	unknown								(0x2 bytes)
		(always seems to = 3)
		(glitches graphics if < 2 or > 6, crashes game if too high)
	unknown								(0x2 bytes)
		(always seems to = 3)
		(crashes game if too high)
	pointer to variant odds data		(0x4 bytes)
	pointer to start of variant 1 data 	(0x4 bytes)
	pointer to start of variant 2 data 	(0x4 bytes)
	pointer to start of variant 3 data 	(0x4 bytes)
	VARIANT 1 (good)					(variable length)
	VARIANT 2 (normal)					(variable length)
	VARIANT 3 (poor)					(variable length)
	good variant spawn chance %			(0x1 byte)
	normal variant spawn chance %		(0x1 byte)
	poor variant spawn chance %			(0x1 byte)
	unknown								(0x1 byte)
		(always seems to = 0)

Each variant has its own data block consisting of:
	pointer to name 	(0x4 bytes)
	pointer to desc 	(0x4 bytes)
	bit flags		 	(0x1 byte)
		X1	unknown, but always checked even on normal demons
		X2	enable LV bonus
		X4	enable VI bonus
		X8	enable ST bonus
		1X	enable MA bonus
		2X	enable AG bonus
		4X	unknown
		8X	unknown, but always checked even on normal demons
	unknown			 	(0x1 byte)
		breaks stars if changed
	quality				(0x1 byte)
		1 = good, 2 = normal, 3 = poor
	level bonus			(0x1 byte, signed)
	VI bonus			(0x1 byte, signed)
	ST bonus			(0x1 byte, signed)
	MA bonus			(0x1 byte, signed)
	AG bonus			(0x1 byte, signed)
	stars				(0x1 byte)
	# of demons			(0x1 byte)
	unknown				(0x3 bytes)
		-1st byte is consistently 00 for poor quality variants
	bonus skills		(0x3 bytes, 1 skill per byte)
		-if a skill the demon learns through level up is included here, the demon will start with that skill learned
		-though this is 3 bytes, it cannot overwrite demon's default skills and any bonus skills that exceed the 3-skill limit will be ignored
	bonus passives		(0x3 bytes, 1 skill per byte)
		-same rules as bonus skills
	unknown				(0x1 byte)
	starting bid		(0x2 bytes)
	buy price			(0x2 bytes)
	name string
	desc string

============================================
FUSION DATA (tbl/fusion.bin)
============================================
NOTE: The Atlus Packer garbles this file when attempting to unpack it. Editing the Target.bin directly is recommended.

0x9A00 bytes
0xC92478 in Target.bin

00000: Series of incrementing 1-byte numbers, starting at 0x1C (28) and ending at 0x7D (125). Each number is appended with a byte of value = 3.
	If these are pointers, the first one points to the start of the empty block and the last one points to the end.
	(Possibly has something to do with indexing; these are "pointers" for non-demon battler IDs?)
000C4: Pointers to fusion messages
	Pointers are 2 bytes. Sequential. Seemingly point to the end of the previous string, but somehow skip over the previous string's 0x00 terminator to record the following string.
	000C4 -> Sarasvati birth
	000C6 -> Sarasvati fusion
	000C8 -> Kikuri-Hime birth
	000CA -> Kikuri-Hime fusion
	(etc.)
002C8: Junk pointers starting at 99D4 and ending at 99FB
	If these are pointers, first one points to the byte immediately after the final string and the last one points to 4 bytes before the end of the file.
00320: empty (0x60 bytes)
00380: Birth and fusion messages. Birth message comes first, then fusion message. Matches demon database order.

********************************************
RANDOM-ACCESS MEMORY (RAM)
********************************************
Party data
--------------------------------------------
*Intrinsic data such as affinities and base stats is stored in arm9

PCs are stored in fixed locations, even if they haven't been recruited. Interestingly, they are all initialized at level 1 on game startup, even for characters who only join at higher levels.

PC data blocks are 0x1C bytes, demon data blocks are x1A bytes.

22429F0: P1  (Hero)
2242A0C: P2  (default Atsuro)
2242A28: P3  (default Yuzu)
2242A44: P4  (default Gin)
2242A60: P5  (default Kaido)
2242A7C: P6  (default Keisuke)
2242A98: P7  (default Midori)
2242AB4: P8  (default Izuna)
2242AD0: P9  (default Mari)
2242AEC: P10 (default Amane)
2242B08: P11 (default Black Frost)
2242B24: P12 (default Naoya)
2242B40: Demon 01
2242B5A: Demon 02
2242B74: Demon 03
2242B8E: Demon 04
2242BA8: Demon 05
2242BC2: Demon 06
2242BDC: Demon 07
2242BF6: Demon 08
2242C10: Demon 09
2242C2A: Demon 10
2242C44: Demon 11
2242C5E: Demon 12
2242C78: Demon 13
2242C92: Demon 14
2242CAC: Demon 15
2242CC6: Demon 16
2242CE0: Demon 17
2242CFA: Demon 18
2242D14: Demon 19
2242D2E: Demon 20
2242D48: Demon 21
2242D62: Demon 22
2242D7C: Demon 23
2242D96: Demon 24
2242DB0: Team leaders
	4 8-byte blocks with the following format:
	0000: Character ID
		If no leader, will be 0xFF
	0002: 0x0000
	0004: 0xFFFFFFFF
	
	2242DB0: Leader 1 (Hero) ID
	2242DB8: Leader 2 ID
	2242DC0: Leader 3 ID
	2242DC8: Leader 4 ID
2242DD0: # of available Teams
	(additional PCs cannot be obtained until this = 4)

Demons are ordered top-down, i.e. the first demon in your stock is located at 0x2242B40.

Note: The ordering here is the default, but the actual order corresponds to the order in the Teams menu. Blocks 1-4 are the active leaders, blocks 5-12 are the bench, with block 5 containing the character at the top of the bench.

Note: Much like how computers handle deleted files, demons removed from your stock (via fusion or deletion) retain their data; the only change is that their leader ID is set to FFFF, making them unavailable to the player. This data will be overwritten if you recruit a new demon, but before then, it is possible to recover your lost demon simply by changing the leader ID to an appropriate value.

Each block has the following format:
0000: Leader ID										(0x2 bytes)
	(correlates to the second name bank in the ARM9)
	For demons in stock, this is set to "Demon00" through "Demon23", but the names are hidden while in stock. This numbering starts at the BOTTOM demon and increments by 1 for each demon.
	For unused blocks, this = FFFF.
0002: ID											(0x2 bytes)
	(correlates to the first name bank in the ARM9)
	(Shoji, Abel, and Cain prevent the status screen from appearing entirely)
	(Values > 199 produce a glitched character with a shockwave graphic for a portrait, and attempting to select them will crash the game. Why they allocated 2 bytes to record less than 255 entries I'll never know)
	For unused blocks, this = FFFF.
0004: Team ID										(0x1 byte)
	Stock = FF.
0005: Level											(0x1 byte)
0006: Speed											(0x1 byte)
0007: Move											(0x1 byte)
	(demons have values 45 and 3 respectively even though they can never be team leaders)
0008: EXP											(0x2 bytes)
000A: Strength										(0x1 byte)
000B: Magic											(0x1 byte)
000C: Vitality										(0x1 byte)
000D: Agility										(0x1 byte)
	(these can be set to values >40, but the enlarged stat bar overlaps with other UI elements and will even wrap around the screen)
000E: HP											(0x2 bytes)
0010: MP											(0x2 bytes)
0012: Skill 1										(0x1 byte)
0013: Skill 2										(0x1 byte)
0014: Skill 3										(0x1 byte)
0015: Passive 1										(0x1 byte)
0016: Passive 2										(0x1 byte)
0017: Passive 3										(0x1 byte)
0018: Auto/Racial Skill								(0x1 byte)
0019: unknown
001A: Presence										(0x1 byte)
	For recruited PCs, = 1. If set to 0, PC is removed from party (even the Hero). However, simply changing the value from 0 to 1 will not add the PC unless the teams variable is 4 (see above)
001B: increments by 2 after skirmish won, purpose unknown
	(not present in demon blocks)

--------------------------------------------
Battle data 
--------------------------------------------
Pointer to base address is stored in 0x1879DC

(Location can be easily found with Cheat Engine's search feature. Search for the X position and then move the cursor around, searching for the new value each time. You should find it within a few searches.)

+0000: HUD controller						(0x4 bytes)
	(don't mess with this)
+0004: battle state controller				(0x4 bytes)
	(don't mess with this)
+0010: time counter							(0x4 bytes)
+0018: menu state controller?				(0x4 bytes)
	(don't mess with this)
+001C: unknown								(0x4 bytes)
+0024: second time counter?					(0x4 bytes)
+0028: Cursor X position					(0x1 byte)
+0029: Cursor Y position					(0x1 byte)
	(if manually changed, cursor can be placed on impassable tiles)
+002C: something to do with graphics
	(don't mess with this)
+004C: unknown								(0x4 bytes?)
+0056: controller?							(0x1 byte?)
+0248: Active enemy teams					(0x10 bytes)
	(inactive spots have value FF)
	(total number of teams is 16, which means max # of enemy teams = 12... except there appear to only be slots for 11.)
+0258: Player Team 1
	Each team block is 0x1D8 bytes and has the following format:			
	+000: Leader
	+084: Left character
	+108: Right character
	
	After character data, footer for data applying to team as a whole:
	+190: # of members						(0x1 byte)
	+191: Team ID							(0x1 byte)
	+192: unknown							(0x1 byte)
		= 0 for inactive teams
		= 1 for player teams
		= 8 for enemy teams
	+193: X-pos								(0x1 byte)
	+194: Y-pos								(0x1 byte)
	+195: Base move							(0x1 byte)
	+196: Speed								(0x2 bytes)
	+198: Initiative						(0x2 bytes)
	
	Each character block is 0x84 bytes and has the following format:
		+00: Team presence					(0x4 bytes, binary)
			(Every character block has this variable, but it only matters in the leader block.)
			(no idea why this is 4 bytes, only the first byte is used)
			X1	present
			X2	deployed
			X4	unknown
			(set to 0 to delete a team from the map)
		+04: Personal presence				(0x4 bytes, binary)
			(again, no idea why this is 4 bytes, only the first is used)
		+08: ID?							(0x2 bytes?)
		+0A: Character						(0x2 bytes?)
			(purely cosmetic EXCEPT for determining whether final skill is racial or auto)
		+0C: Position in team				(0x1 byte)
			0 = Leader
			1 = Left
			2 = Right
		+0E: Level							(0x1 byte)
		+11: Stats (St/Ma/Vi/Ag in that order, 1 byte each)
		+16: HP								(0x2 bytes)
		+18: Max HP							(0x2 bytes)
		+1A: MP								(0x2 bytes)
		+1C: Max MP							(0x2 bytes)
		+28: Condition						(0x2 bytes)
		+2C: Skills							(0x3 bytes)
		+36: Passives						(0x3 bytes)
		+39: Racial/auto skill				(0x1 byte)
		+54: Affinities (effective)			(0x6 bytes)
		+5A: Affinities (base)				(0x6 bytes)
			If effective affinity differs, affinity will have an orange color in-game

--------------------------------------------
Learned Skills
--------------------------------------------
Learned skills are recorded as binary data. Matches database order. Flags for cut/enemy-exclusive skills are included, but activating them has no effect.

2242E04: Command skills
2242E0E: Passive skills
2242E18: Auto skills

There are significant gaps of what appear to be unused space between each section. Purpose is unknown.

--------------------------------------------
Miscellaneous
--------------------------------------------
2195D68: # of explore options at current location
2195D6C: Option 1 text
	2195D9C: Unknown data (sometimes = 0x0001 or 0x0100 depending on option)
	2195D9E: Unknown data
		presumably event/cutscene ID, = 0xFFFF for generic options
	2195DA0: Pointer? Changes for every option
	2195DA4: Unknown data
		presumably event/cutscene ID, = 0xFFFFFFFF for generic options
	2195DA8: Unknown data
		= 0x00 for options that transition to a scene
		= 0x01 for options that don't
2195DAC: Option 2 text
2195DEC: Option 3 text
2195E2C: Option 4 text
2195E6C: Option 5 text

21986E4: In-game time, 1 = 30 minutes. Not reflected in the HUD, presumably only for tracking events. Initialized to FFFF on day start.

22429C0: Playtime counter (0x4 bytes)
22429C4: Initialized to 0x00000002 on startup
22429C8: Bit flags, cutscene handlers? Each bit corresponds to 1 unit appearing in a field map scene. No relation to battles. Persist after scene but if manually unset will re-set themselves when needed in next scene (why?)
22429EC: Initialized to 0x00010100 on startup

2242DD1: Hero last name (0xC bytes)
	(encoded in SHIFT-JIS so each letter is 2 bytes, spaces are included)
2242DDD: empty (0x5 bytes)
2242DE2: Hero first name (0xC bytes)
2242DEE: empty (0x5 bytes)
2242DF3: Hero nickname (0xC bytes)
2242DFF: empty

2242E00: event flags?
	2242E4C
		X2 = auction tutorial done
	2242E4E
		X2 = fought D1 Shinjuku free battle
	2242E4F: COMP functions
		1X = Team option enabled
		2X = Auction function enabled
		4X = 1st battle won
	2242E50
		X2 = set after naming Hero
		X4 = set after naming Hero
	2242E51
		X1 = D0 17:30 battle complete
	2242E56
		2X = D0 17:30 battle start
		4X = D0 18:30 battle start
2242E53: If = 4, time will advance next time map is loaded
2242E5E: Scene records
	2242E5E
		X8 = set on new game
		2X = visited Atsuro D0 16:00
		4X = visited Shomonkai D0 16:00
		8X = D0 16:30
	2242E5F
		X2 = D0 17:00
		X4 = D0 17:30
		X8 = D0 18:30 followup
		1X = D0 18:30
	2242E60
		8X = D1 12:00 Keisuke

2242E38: Macca (0x4 bytes)
2242E3C: Auction rating (0x4 bytes)
2242E40: In-game time (in minutes from midnight). Reflected in the HUD.
2242E42: Time skip boundary (in minutes from midnight). Time cannot be skipped beyond this point.
2242E44: Day (0x1 byte)
2242E45: "In battle" flag (Boolean)

2242E94: Battle events (0x3 bytes)
	Each bit corresponds to an in-battle event. Reset at the start of each battle.
2242EAD: Enemies defeated
	Only seems to be tracked in story battles
2242EBC: # of turns passed in battle? (0x4 bytes)
	Increments by 1 between enemy actions, but increases by a larger amount when switching between player and enemy
	(blanked at start of battle but not at end)